﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Crosland.Automotriz.Core;
using Crosland.Automotriz.Logic.Linq;
using Crosland.Automotriz.Logic.Interfaces;
using System.Configuration;
using System.Data.SqlTypes;
using Crosland.Automotriz.Seguridad.ControlExeption;
namespace Crosland.Automotriz.Web.Repuestos
{
    public partial class wFrmDuaTituloActualizar : System.Web.UI.Page
    {

        iDuaTitulo BL_Dua_Titulo = new clsT_Imp_Dua_TituloLogic();
        string idNegocio = ConfigurationManager.AppSettings["Negocio"];
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", "JavaScript:confirmSubmitResult();", true);
                validarSesion();
            }
        }

        void validarSesion()
        {
            try
            {
                if (Session["estado"].ToString() == "1")
                {
                    lblEstado.Text = string.Empty;
                    lblEstado.Text = "Actualizar";
                    cargarDatos();
                }
                else
                {
                    txtIdDuaTitulo.Enabled = false;
                    dteFecha.Date = DateTime.Now;
                    dteFechaTitulo.Date = DateTime.Now;
                   
                }
            }
            catch (DataException e)
            {

                MensajesError(e.Message, e, "validarSesion");
            }
            catch (RunException re)
            {
                MensajesError(re.Message, re, "validarSesion");
            }
        }

        private void GuardarExceptionLog(String msgUsu, Exception ex, String metError)
        {
            try
            {
                String msgReal, fhError, pagError, codUsu;
                msgReal = (ex.InnerException != null) ? ex.InnerException.Message : ex.Message;
                pagError = new System.IO.FileInfo(Page.Request.Url.AbsolutePath).Name;
                codUsu = Session["User"].ToString();
                fhError = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");

                System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace(ex, true);
                int number = 0;
                for (int i = 0; i < trace.FrameCount; i++)
                {
                    System.Diagnostics.StackFrame sf = trace.GetFrame(i);
                    number = sf.GetFileLineNumber();
                }
                fhError = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
                new Logg().ErrorLog(Server.MapPath("~/Logs/ErrorLog.csv"), msgUsu, msgReal, pagError, metError, codUsu, number);
            }
            catch (Exception e)
            {
                GuardarExceptionLog(e.Message, e, "GuardarExceptionLog");
                MensajesError(e.Message, e, "GuardarExceptionLog");
            }

        }

        private void MensajesError(String msgUsu, Exception ex, String metError)
        {
            Crosland.Automotriz.Web.UserControl.MensajeError uc = (Crosland.Automotriz.Web.UserControl.MensajeError)Master.FindControl("ucErrorMensaje");
            String msgReal, fhError, pagError, codUsu;
            msgReal = (ex.InnerException != null) ? ex.InnerException.Message : ex.Message;
            pagError = new System.IO.FileInfo(Page.Request.Url.AbsolutePath).Name;
            codUsu = Session["User"].ToString();
            fhError = DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss");
            System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace(ex, true);
            int number = 0;
            for (int i = 0; i < trace.FrameCount; i++)
            {
                System.Diagnostics.StackFrame sf = trace.GetFrame(i);
                number = sf.GetFileLineNumber();
            }
            uc.Errores(msgUsu, msgReal, fhError, pagError, metError, codUsu, number);
        }

        protected void btnSalir_Click(object sender, EventArgs e)
        {
            Response.Redirect("~/Repuestos/wFrmDuaTitulo.aspx?id="+idNegocio);
        }

        protected void btnGrabar_Click(object sender, EventArgs e)
        {
            if (txtNroPedido.Text.Trim() == string.Empty)
            {
                string script = "ShowMsj();";
                ScriptManager.RegisterStartupScript(this, GetType(), "carga", script, true);
            }
            else {

                if (Session["estado"].ToString() == "1")
                {
                    lblMensaje.Text = string.Empty;
                    lblMensaje.Text = "¿Está seguro de modificar los datos? ";
                    string script = "popupConfirmacion.Show()";
                    ScriptManager.RegisterStartupScript(this, GetType(), "carga", script, true);
                }
                else
                {
                    lblMensaje.Text = string.Empty;
                    lblMensaje.Text = "¿Está seguro de grabar los datos?";
                    string script = "popupConfirmacion.Show()";
                    ScriptManager.RegisterStartupScript(this, GetType(), "carga", script, true);
                }
            
            }


          
            
        }


        void limpiarControles()
        {
            txtOrden.Text = string.Empty;
            txtTitulo.Text = string.Empty;
            txtEntregadoA.Text = string.Empty;
            txtIdDuaTitulo.Text = string.Empty;
            txtNroPedido.Text = string.Empty;
            txtNroPoliza.Text = string.Empty;
            dteFecha.Value = string.Empty;
            dteFechaEntregado.Value = string.Empty;
            dteFechaTitulo.Value = string.Empty;
            chkActivo.Checked = false;
        }

        void cargarDatos()
        {
            try
            {
                txtIdDuaTitulo.Text = Session["id_imp_dua_titulo"].ToString();
                txtNroPedido.Text = Session["NroPedido"].ToString();
                txtNroPoliza.Text = Session["NroPoliza"].ToString();
                dteFecha.Date = Session["Fecha"].ToString() == string.Empty ? Convert.ToDateTime(null) : Convert.ToDateTime(Session["Fecha"]);
                txtEntregadoA.Text = Session["Entregado_A"].ToString();
                dteFechaEntregado.Date = Session["Entregado_El"].ToString() == string.Empty ? Convert.ToDateTime(null) : Convert.ToDateTime(Session["Entregado_El"]);
                txtTitulo.Text = Session["Titulo"].ToString();
                dteFechaTitulo.Date = Session["Fecha_Titulo"].ToString() == string.Empty ? Convert.ToDateTime(null) : Convert.ToDateTime(Session["Fecha_Titulo"]);
                txtOrden.Text = Session["Orden"].ToString();
                if (Convert.ToBoolean(Session["IND_ACTIVO"]) == true)
                {
                    chkActivo.Checked = true;
                }
                else
                {
                    chkActivo.Checked = false;
                }
                txtIdDuaTitulo.Enabled = false;
                txtNroPedido.Enabled = false;
            }
            catch (DataException e)
            {

                MensajesError(e.Message, e, "cargarDatos");
            }
            catch (RunException re)
            {
                MensajesError(re.Message, re, "cargarDatos");
            }

          
        }

        void modificar()
        {
            try
            {
                T_IMP_DUA_TITULO objT_IMP_DUA_TITULO = new T_IMP_DUA_TITULO();
                objT_IMP_DUA_TITULO.id_imp_dua_titulo = Convert.ToInt32(txtIdDuaTitulo.Text);
                objT_IMP_DUA_TITULO.Entregado_A = txtEntregadoA.Text;
            
                if (dteFechaEntregado.Text.Trim() == string.Empty)
                {
                    objT_IMP_DUA_TITULO.Entregado_El = null;
                }
                else
                {
                    objT_IMP_DUA_TITULO.Entregado_El = Convert.ToDateTime(dteFechaEntregado.Value);

                }
                 if (dteFecha.Text.Trim() == string.Empty)
                    {
                        objT_IMP_DUA_TITULO.Fecha = null;
                    }
                    else {
                        objT_IMP_DUA_TITULO.Fecha = Convert.ToDateTime(dteFecha.Value);
                    }

                 if (dteFechaTitulo.Text.Trim() == string.Empty)
                 {
                     objT_IMP_DUA_TITULO.Fecha_Titulo = null;
                 }
                 else
                 {
                     objT_IMP_DUA_TITULO.Fecha_Titulo = Convert.ToDateTime(dteFechaTitulo.Value);
                 }
                objT_IMP_DUA_TITULO.NroPedido = txtNroPedido.Text;
                objT_IMP_DUA_TITULO.NroPoliza = txtNroPoliza.Text;
                objT_IMP_DUA_TITULO.Orden = txtOrden.Text;
                objT_IMP_DUA_TITULO.Titulo = txtTitulo.Text;
                objT_IMP_DUA_TITULO.IND_ACTIVO = chkActivo.Checked;
                if (BL_Dua_Titulo.Modificar(objT_IMP_DUA_TITULO))
                {

                    lblMensajeCamposVacios.Text = string.Empty;
                    lblMensajeCamposVacios.Text = "Se modificó correctamente ";
                    string script = "ShowMensaje();";
                    ScriptManager.RegisterStartupScript(this, GetType(), "carga", script, true);
                  
                }
                else
                {
                    lblMensajeCamposVacios.Text = string.Empty;
                    lblMensajeCamposVacios.Text = "Ya existe el número de pedido";
                    string script = "ShowMensaje();";
                    ScriptManager.RegisterStartupScript(this, GetType(), "carga", script, true);
                }
            }
           catch (DataException e)
            {

                MensajesError(e.Message, e, "modificar");
                lblMensajeCamposVacios.Text = string.Empty;
                lblMensajeCamposVacios.Text = "Error en la aplicación";
                string script = "ShowMensaje();";

                ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", script, true);
            }
            catch (RunException re)
            {
                MensajesError(re.Message, re, "modificar");
            }
        }
        void grabar()
        {
            try
            {
                T_IMP_DUA_TITULO objT_IMP_DUA_TITULO = new T_IMP_DUA_TITULO();
              
                    objT_IMP_DUA_TITULO.Entregado_A = txtEntregadoA.Text;
             
                    if (dteFechaEntregado.Text.Trim() == string.Empty)
                    {
                        objT_IMP_DUA_TITULO.Entregado_El = null;
                    }
                    else
                    {
                        objT_IMP_DUA_TITULO.Entregado_El = Convert.ToDateTime(dteFechaEntregado.Value);
                    }

                    if (dteFecha.Text.Trim() == string.Empty)
                    {
                        objT_IMP_DUA_TITULO.Fecha = null;
                    }
                    else {
                        objT_IMP_DUA_TITULO.Fecha = Convert.ToDateTime(dteFecha.Value);
                    }

                    if (dteFechaTitulo.Text.Trim() == string.Empty)
                    {
                        objT_IMP_DUA_TITULO.Fecha_Titulo = null;
                    }
                    else
                    {
                        objT_IMP_DUA_TITULO.Fecha_Titulo = Convert.ToDateTime(dteFechaTitulo.Value);
                    }
                    objT_IMP_DUA_TITULO.NroPedido = txtNroPedido.Text;
                    objT_IMP_DUA_TITULO.NroPoliza = txtNroPoliza.Text;
                    objT_IMP_DUA_TITULO.Orden = txtOrden.Text;
                    objT_IMP_DUA_TITULO.Titulo = txtTitulo.Text;
                    objT_IMP_DUA_TITULO.IND_ACTIVO = chkActivo.Checked;
                    if (BL_Dua_Titulo.Insertar(objT_IMP_DUA_TITULO))
                    {
                        limpiarControles();

                        lblMensajeCamposVacios.Text = string.Empty;
                        lblMensajeCamposVacios.Text = "Se grabó correctamente";
                        string script = "ShowMensaje();";
                        ScriptManager.RegisterStartupScript(this, GetType(), "carga", script, true);
                    }
                    else
                    {
                        lblMensajeCamposVacios.Text = string.Empty;
                        lblMensajeCamposVacios.Text = "Ya existe el número de pedido.";
                        string script = "ShowMensaje();";
                        ScriptManager.RegisterStartupScript(this, GetType(), "carga", script, true);
                    }
                    
            }
             catch (DataException e)
            {
                   lblMensajeCamposVacios.Text = string.Empty;
                lblMensajeCamposVacios.Text = "Error en la aplicación";
                string script = "ShowMensaje();";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", script, true);
                MensajesError(e.Message, e, "grabar");
            }
            catch (RunException re)
            {
                MensajesError(re.Message, re, "grabar");
            }

        }

        protected void btnAceptar_Click(object sender, EventArgs e)
        {
            try
            {
                if (Session["estado"].ToString() == "1")
                {
                    modificar();
                }
                else
                {

                    grabar();
                }
            }
            catch
            {
            }
           
            
           
        }

        protected void btnLimpiar_Click(object sender, EventArgs e)
        {
            limpiarControles();
        }

     

    }
}